Most software products undergo a continual revision process to repair or update features of the software. Each revision of a software product frequently requires adding new files, replacing existing files with newer revisions, deleting obsolete files, or various combinations of these actions. This process of replacing older files, adding new files, and deleting obsolete files of a software product is usually referred to as “updating the product.” The data collection, including binary files, data files, update instructions, metadata, and the like, used in updating the product is usually referred to as a “software update” or more simply as an “update.”
Once a software provider has created an update for a software product, either to fix a problem, enhance security, or add new features, the software provider will want to make that update widely available to its customer base. Quite often, such as when the update is directed at correcting a flaw in the product or addressing a critical security issue, the software provider will want that update installed on the customers' computers as soon as possible. Indeed, most software providers have a business incentive to distribute software updates to their customers as quickly and in as trouble-free a manner as possible.
However, a customer of a software product may not easily discover that his or her software product needs one or more specific updates. Generally, an update can be deployed through a Web site, or through media such as a CD. A customer may download and install the update from the Web site or the media. However, these mechanisms do not enable a customer to easily discover what updates are applicable to the software product.
Therefore, there exists a need for automatically identifying one or more updates that are applicable to a software product. Furthermore, it is desirable to automatically download one or more updates that a customer selects to download. It is also desirable to automatically install one or more updates that a customer selects to install.